package com.sf.asp.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.sf.asp.entity.User;
import com.sf.asp.entity.dto.DeleteDTO;
import com.sf.asp.entity.dto.UserQueryDTO;
import com.sf.asp.entity.vo.UserVO;
import org.apache.ibatis.annotations.*;

import java.util.List;

/**
 * <p>
 *  Mapper 接口
 * </p>
 *
 * @author jins
 * @since 2021-11-24
 */
@Mapper
public interface UserMapper extends BaseMapper<User> {

    /**
     * 获取所有用户信息
     * @param page  分页参数
     * @return 用户列表
     */
    IPage<User> listUser(@Param("page") Page<User> page,@Param("param") UserQueryDTO param);

    /**
     * 保存用户信息
     * @param user 用户信息
     * @return 条数
     */
    @Insert("insert into asp_user (name,username,password) values(#{user.name},#{user.username},#{user.password})")
    @Options(useGeneratedKeys = true,keyProperty = "id",keyColumn = "id")
    int saveUser(@Param("user") User user);


    /**
     * 修改用户信息
     * @param userParam 用户参数
     */
    @Update("update asp_user set name = #{user.name},username = #{user.username} where id = #{user.id}")
    void editUser(@Param("user") UserVO userParam);


    /**
     * 批量删除用户数据
     * @param userIds 用户Id 集合
     */
    void deleteUsers(@Param("userIds") List<Integer> userIds);

}
